package com.better.frontend.model.exam;

import com.better.backend.mqReceiverService.examReceiver.model.ExamUnitModel;
import com.better.common.validator.Fixed;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.NotEmpty;

import java.util.Date;
import java.util.List;

/**
 * Created by wfm on 2017/11/19.
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("创建校级考试请求参数")
public class CreateExamParam {
    @ApiModelProperty(value ="考试id")
    private String id;
    @ApiModelProperty(value ="考试名称")
    @NotEmpty(message = "考试名称不成为空")
    private String examName;        // 考试名称
    @ApiModelProperty(value ="考试类型（校考(1)、班考(2)）")
    @Fixed(value ="1,2" ,message = "考试类型值错误，1 校考 2 班考")
    private String examType;        // 考试类型
    @ApiModelProperty(value ="参考学校Id",hidden=true)
    @NotEmpty(message = "学校id不能为空")
    private String schoolId;        // 参考学校Id
    @ApiModelProperty(value ="学校名称",hidden=true)
    @NotEmpty(message = "学校名称不能为空")
    private String schoolName;        // 学校名称
    @ApiModelProperty(value ="考试开始时间")
    @NotEmpty(message = "考试开始时间不能为空")
    private Date startDate;        // 考试开始时间
    @ApiModelProperty(value ="考试结束时间")
    @NotEmpty(message = "考试结束时间不能为空")
    private Date endDate;        // 考试结束时间
    @ApiModelProperty(value ="参考单位，如果为校级考试，则表示年级信息，如果为班级考试，则表示班级信息")
    private List<ExamUnitModel> examUnitModels; //参考单位，如果为校级考试，则表示年级信息，如果为班级考试，则表示班级信息
    //年级名称，年级ID，如果为校级考试，则该字段为空。为班级考试，则该字段表示参考班级对应的年级信息
    @ApiModelProperty(value ="年级ID，如果为校级考试，则该字段为空。为班级考试，则该字段表示参考班级对应的年级信息")
    private String gradeId;
    @ApiModelProperty(value ="年级名称，如果为校级考试，则该字段为空。为班级考试，则该字段表示参考班级对应的年级信息")
    private String gradeName;
    @Override
    public String toString() {
        return "{" +
                "examName='" + examName + '\'' +
                ", examType='" + examType + '\'' +
                ", schoolId='" + schoolId + '\'' +
                ", schoolName='" + schoolName + '\'' +
                ", startDate=" + startDate +
                ", endDate=" + endDate +
                '}';
    }
}
